/*
 * Copyright 2013 Agustina Martinez-Garcia

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
 */
package uk.da.dext.datastructs;

import uk.da.dext.DocumentType;

public class DocumentStruct {
	
	/**
	 * XML ID attribute for a document XML element
	 */
	private String documentXmlId;
	/**
	 * The assigned Fedora PID for this document XML element
	 */
	private String fedoraDocumentPid;
	/**
	 * The documentType attribute value: SOURCE or MEMO_SOURCE
	 */
	private String documentType;
	/**
	 * The assigned Fedora PID for this document XML element, TODO Check whether needed
	 */
	private String resourceReferencePid;
	/**
	 * The XML ID of the source element associated with this document element
	 */
	private String resourceReference;
	/**
	 * Type of Source document: (attribute resourceType) values from : text, audio, video, xml, other
	 */
	private String resourceType;
	/**
	 * XML attribute 'mimetype' for a document element within the qudex schema
	 */
	private String documentMimeType;
	
	/**
	 * qudex:original_file, true false coming from spreadsheet
	 */
	private boolean isOriginalDocument;
	
	/**
	 * Attribute location from source element within the qudex instance and associated with a particular document from the spreadsheet
	 */
	private String documentLocation;
	/**
	 * Attribute creator in the qudex standard attributes group
	 */
	private String documentCreator;
	/**
	 * Attribute from statndard attribute group in Qudex to reflect the document's language
	 */
	private String documentLanguage;
	
	/**
	 * @param documentXmlId the documentXmlId to set
	 */
	public void setDocumentXmlId(String documentXmlId) {
		this.documentXmlId = documentXmlId;
	}

	/**
	 * @return the documentXmlId
	 */
	public String getDocumentXmlId() {
		return documentXmlId;
	}

	/**
	 * @param fedoraDocumentPid the fedoraDocumentPid to set
	 */
	public void setFedoraDocumentPid(String fedoraDocumentPid) {
		this.fedoraDocumentPid = fedoraDocumentPid;
	}

	/**
	 * @return the fedoraDocumentPid
	 */
	public String getFedoraDocumentPid() {
		return fedoraDocumentPid;
	}

	/**
	 * @param documentType the documentType to set
	 */
	public void setDocumentType(String documentType) {
		this.documentType = documentType;
	}

	/**
	 * @return the documentType
	 */
	public String getDocumentType() {
		return documentType;
	}

	/**
	 * @param resourcesReferencesList the resourcesReferencesList to set
	 */
	public void setResourceReference(String resourceReference) {
		this.resourceReference = resourceReference;
	}

	/**
	 * @return the resourcesReferencesList
	 */
	public String getResourceReference() {
		return resourceReference;
	}
	
	public DocumentStruct() {
		this.setDocumentXmlId("");
		this.setFedoraDocumentPid("");
		this.setDocumentType(DocumentType.DocumentType2.SOURCE.toString());
		this.setResourceReference("");
		this.setResourceReferencePid("");
		this.setDocumentLanguage("");
	}

	/**
	 * @param resourceReferencePid the resourceReferencePid to set
	 */
	public void setResourceReferencePid(String resourceReferencePid) {
		this.resourceReferencePid = resourceReferencePid;
	}

	/**
	 * @return the resourceReferencePid
	 */
	public String getResourceReferencePid() {
		return resourceReferencePid;
	}

	/**
	 * @param sourceType the sourceType to set
	 */
	public void setResourceType(String resourceType) {
		this.resourceType = resourceType;
	}

	/**
	 * @return the sourceType
	 */
	public String getResourceType() {
		return resourceType;
	}

	/**
	 * @param documentMimeType the documentMimeType to set
	 */
	public void setDocumentMimeType(String documentMimeType) {
		this.documentMimeType = documentMimeType;
	}

	/**
	 * @return the documentMimeType
	 */
	public String getDocumentMimeType() {
		return documentMimeType;
	}

	/**
	 * @param isOriginalDocument the isOriginalDocument to set
	 */
	public void setOriginalDocument(boolean isOriginalDocument) {
		this.isOriginalDocument = isOriginalDocument;
	}

	/**
	 * @return the isOriginalDocument
	 */
	public boolean isOriginalDocument() {
		return isOriginalDocument;
	}

	/**
	 * @param documentLocation the documentLocation to set
	 */
	public void setDocumentLocation(String documentLocation) {
		this.documentLocation = documentLocation;
	}

	/**
	 * @return the documentLocation
	 */
	public String getDocumentLocation() {
		return documentLocation;
	}

	/**
	 * @param documentCreator the documentCreator to set
	 */
	public void setDocumentCreator(String documentCreator) {
		this.documentCreator = documentCreator;
	}

	/**
	 * @return the documentCreator
	 */
	public String getDocumentCreator() {
		return documentCreator;
	}

	/**
	 * @param documentLanguage the documentLanguage to set
	 */
	public void setDocumentLanguage(String documentLanguage) {
		this.documentLanguage = documentLanguage;
	}

	/**
	 * @return the documentLanguage
	 */
	public String getDocumentLanguage() {
		return documentLanguage;
	}
}
